package Funcoes;

import Exception.TrianguloException;
import java.util.Locale;

/**
 * @author  Amannda Misael
 * @version 1.1
 */
public class Triangulo {
    private double lado1;
    private double lado2;
    private double lado3;
    private TipoTriangulo tipoTriang;

    public enum TipoTriangulo
    {
        EQUILATERO,
        ISOSCELES,
        ESCALENO;
    }

    public Triangulo(double l1, double l2, double l3) throws TrianguloException
    {
       validarTriangulo(l1, l2, l3);
       lado1= l1;
       lado2 = l2;
       lado3 = l3;
       setTipoTriangulo();
     }

    private void validarTriangulo(double l1, double l2, double l3) throws TrianguloException
    {
        String msgErro = "";
        if (l1 >= l2+l3)
           msgErro += " Lado A deve ser menor que " + (l2+l3) + " .";
        else if(l2 >= l1 + l3)
           msgErro += " Lado B deve ser menor que " + (l1+l3) + " .";
        else if(l3 >= l1 + l2)
           msgErro += " Lado C deve ser menor que " + (l1+l2) + " .";

        if (!msgErro.equals(""))
           throw new TrianguloException("Triangulo inválido!" + msgErro);
    }

    private void setTipoTriangulo ()
    {
        int ladosIguais = 0;
        if (lado1 == lado2)
            ladosIguais++;

        if (lado2 == lado3)
            ladosIguais++;

        if (lado3 == lado1)
            ladosIguais++;

        switch(ladosIguais)
        {
            case (0):
                tipoTriang = TipoTriangulo.ESCALENO;
                break;
            case (1):
                tipoTriang = TipoTriangulo.ISOSCELES;
                break;
            case (3):
                tipoTriang = TipoTriangulo.EQUILATERO;
                break;
        }
    }

    public TipoTriangulo getTipoTriangulo()
    {
        return tipoTriang;
    }

    public double getLado1()
    {
        return lado1;
    }

    public double getLado2()
    {
        return lado2;
    }

    public double getLado3()
    {
        return lado3;
    }
   
}

